// This file is part of KWIVER, and is distributed under the
// OSI-approved BSD 3-Clause License. See top-level LICENSE file or
// https://github.com/Kitware/kwiver/blob/master/LICENSE for details.

/// \file
/// \brief This file contains the enumerated vital metadata tags.

#ifndef KWIVER_VITAL_METADATA_TAGS_H_
#define KWIVER_VITAL_METADATA_TAGS_H_

namespace kwiver {
namespace vital {

// ----------------------------------------------------------------------------
enum vital_metadata_tag {
  VITAL_META_UNKNOWN,
  VITAL_META_METADATA_ORIGIN,
  VITAL_META_UNIX_TIMESTAMP,
  VITAL_META_MISSION_ID,
  VITAL_META_MISSION_NUMBER,
  VITAL_META_PLATFORM_TAIL_NUMBER,
  VITAL_META_PLATFORM_HEADING_ANGLE,
  VITAL_META_PLATFORM_PITCH_ANGLE,
  VITAL_META_PLATFORM_ROLL_ANGLE,
  VITAL_META_PLATFORM_TRUE_AIRSPEED,
  VITAL_META_PLATFORM_INDICATED_AIRSPEED,
  VITAL_META_PLATFORM_DESIGNATION,
  VITAL_META_IMAGE_SOURCE_SENSOR,
  VITAL_META_IMAGE_COORDINATE_SYSTEM,
  VITAL_META_IMAGE_URI,
  VITAL_META_IMAGE_WIDTH,
  VITAL_META_IMAGE_HEIGHT,
  VITAL_META_VIDEO_DATA_STREAM_INDEX,
  VITAL_META_VIDEO_URI,
  VITAL_META_VIDEO_KEY_FRAME,
  VITAL_META_VIDEO_FRAME_NUMBER,
  VITAL_META_VIDEO_MICROSECONDS,
  VITAL_META_SENSOR_LOCATION,
  VITAL_META_SENSOR_HORIZONTAL_FOV,
  VITAL_META_SENSOR_VERTICAL_FOV,
  VITAL_META_SENSOR_REL_AZ_ANGLE,
  VITAL_META_SENSOR_REL_EL_ANGLE,
  VITAL_META_SENSOR_REL_ROLL_ANGLE,
  VITAL_META_SENSOR_YAW_ANGLE,
  VITAL_META_SENSOR_PITCH_ANGLE,
  VITAL_META_SENSOR_ROLL_ANGLE,
  VITAL_META_SENSOR_TYPE,
  VITAL_META_SLANT_RANGE,
  VITAL_META_TARGET_WIDTH,
  VITAL_META_FRAME_CENTER,
  VITAL_META_CORNER_POINTS,
  VITAL_META_ICING_DETECTED,
  VITAL_META_WIND_DIRECTION,
  VITAL_META_WIND_SPEED,
  VITAL_META_STATIC_PRESSURE,
  VITAL_META_DENSITY_ALTITUDE,
  VITAL_META_OUTSIDE_AIR_TEMPERATURE,
  VITAL_META_TARGET_LOCATION,
  VITAL_META_TARGET_TRK_GATE_WIDTH,
  VITAL_META_TARGET_TRK_GATE_HEIGHT,
  VITAL_META_TARGET_ERROR_EST_CE90,
  VITAL_META_TARGET_ERROR_EST_LE90,
  VITAL_META_DIFFERENTIAL_PRESSURE,
  VITAL_META_PLATFORM_ANG_OF_ATTACK,
  VITAL_META_PLATFORM_VERTICAL_SPEED,
  VITAL_META_PLATFORM_SIDESLIP_ANGLE,
  VITAL_META_AIRFIELD_BAROMET_PRESS,
  VITAL_META_AIRFIELD_ELEVATION,
  VITAL_META_RELATIVE_HUMIDITY,
  VITAL_META_PLATFORM_GROUND_SPEED,
  VITAL_META_GROUND_RANGE,
  VITAL_META_PLATFORM_FUEL_REMAINING,
  VITAL_META_PLATFORM_CALL_SIGN,
  VITAL_META_LASER_PRF_CODE,
  VITAL_META_SENSOR_FOV_NAME,
  VITAL_META_PLATFORM_MAGNET_HEADING,
  VITAL_META_UAS_LDS_VERSION_NUMBER,
  VITAL_META_ANGLE_TO_NORTH,
  VITAL_META_OBLIQUITY_ANGLE,
  VITAL_META_START_TIMESTAMP,
  VITAL_META_EVENT_START_TIMESTAMP,
  VITAL_META_SECURITY_CLASSIFICATION,
  VITAL_META_AVERAGE_GSD,
  VITAL_META_VNIIRS,
  VITAL_META_WAVELENGTH,
  VITAL_META_GPS_SEC,
  VITAL_META_GPS_WEEK,
  VITAL_META_NORTHING_VEL,
  VITAL_META_EASTING_VEL,
  VITAL_META_UP_VEL,
  VITAL_META_IMU_STATUS,
  VITAL_META_LOCAL_ADJ,
  VITAL_META_DST_FLAGS,
  VITAL_META_RPC_HEIGHT_OFFSET,
  VITAL_META_RPC_HEIGHT_SCALE,
  VITAL_META_RPC_LONG_OFFSET,
  VITAL_META_RPC_LONG_SCALE,
  VITAL_META_RPC_LAT_OFFSET,
  VITAL_META_RPC_LAT_SCALE,
  VITAL_META_RPC_ROW_OFFSET,
  VITAL_META_RPC_ROW_SCALE,
  VITAL_META_RPC_COL_OFFSET,
  VITAL_META_RPC_COL_SCALE,
  VITAL_META_RPC_ROW_NUM_COEFF,
  VITAL_META_RPC_ROW_DEN_COEFF,
  VITAL_META_RPC_COL_NUM_COEFF,
  VITAL_META_RPC_COL_DEN_COEFF,
  VITAL_META_NITF_IDATIM,
  VITAL_META_NITF_BLOCKA_FRFC_LOC_01,
  VITAL_META_NITF_BLOCKA_FRLC_LOC_01,
  VITAL_META_NITF_BLOCKA_LRLC_LOC_01,
  VITAL_META_NITF_BLOCKA_LRFC_LOC_01,
  VITAL_META_NITF_IMAGE_COMMENTS,
  VITAL_META_LAST_TAG,
};

// ----------------------------------------------------------------------------
template< vital_metadata_tag Tag >
struct metadata_tag_static_traits;

// ----------------------------------------------------------------------------
template< vital_metadata_tag Tag >
using type_of_tag = typename metadata_tag_static_traits< Tag >::type;

}
}

#endif
